package cn.edu.ecut;

public class Lion {

    public static String home ; // 类变量 ( 有 static 修饰符修饰的字段 )

    public String name ; // 实例变量 ( 没有 static 修饰符修饰的字段 )

    static { // 静态代码块 : 直接在类体括号中书写的、有static修饰的、用来对类变量进行初始化的代码块
        System.out.println( "static code block" );
        home = "大草原" ;
    }

    { // 实例代码块 : 直接在类体括号中书写的、用来对实例变量进行初始化的代码块
        System.out.println( "instance code block" );
        this.name = "辛巴" ; // 暂时不考虑通过构造方法传递参数，而是直接指定固定的值
    }

    public Lion(){ // 构造方法
        System.out.println( "构造方法: " + this.name);
    }

    public static void main(String[] args) {

        System.out.println( Lion.home );

        System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );

        Lion first = new Lion();
        System.out.println( first.name);

        System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );

        Lion second = new Lion();
        System.out.println( second.name);
        
    }
    
}